using IM.Easy.Infrastructure.Query;
using System.ComponentModel.DataAnnotations;


namespace IM.Easy.LogServices.Dtos
{
    /// <summary>
    /// 用户在线日志表查询实体
    /// </summary>
    public class UserOnlineLogQueryDto : QueryBase
    {
        /// <summary>
        /// 连接id
        /// </summary>
        public List<string> TraceIdentifier { get; set; }

        /// <summary>
        /// 用户名称
        /// </summary>
        public string UserName { get; set; }

    }

    /// <summary>
    /// 用户在线日志表dto
    /// </summary>
    public class UserOnlineLogDto
    {
        /// <summary>
        /// 日志唯一ID
        /// </summary>
        public string Id { get; set; }
        /// <summary>
        /// 用户ID
        /// </summary>
        public string UserId { get; set; }
        /// <summary>
        /// 用户名
        /// </summary>
        public string UserName { get; set; }

        /// <summary>
        /// 昵称
        /// </summary>
        public string NickName { get; set; }

        /// <summary>
        /// 上线时间
        /// </summary>
        public DateTime OnlineTime { get; set; }
        /// <summary>
        /// 下线时间
        /// </summary>
        public DateTime? OfflineTime { get; set; }

        /// <summary>
        /// 用户IP地址
        /// </summary>
        public string IpAddress { get; set; }

        /// <summary>
        /// 客户端IP
        /// </summary>
        public string ClientIP { get; set; }

        /// <summary>
        /// 用户代理信息（如浏览器类型、版本等）
        /// </summary>
        public string UserAgent { get; set; }

        /// <summary>
        /// 用户终端信息
        /// </summary>
        public string TerminalInfo { get; set; }
        /// <summary>
        /// 请求的唯一追踪ID
        /// </summary>
        public string ConnectionId { get; set; }
        /// <summary>
        /// 操作描述或备注
        /// </summary>
        public string Description { get; set; }
        /// <summary>
        /// 记录创建时间
        /// </summary>
        public DateTime CreatedAt { get; set; }
    }
}
